One or more aspects relate, in general, to processing within a computing environment, and in particular, to improving such processing.
Processing within a computing environment often includes the use of branch instructions that transfer control from one part of a computer program to another part of the program. There are different types of branch instructions, including conditional branch instructions, which transfer control to another part of the program based on results of a previously established condition, such as based on the results of a compare instruction. One example of a conditional branch instruction is a Branch On Condition instruction included in the Instruction Set Architecture (ISA) of the z/Architecture, offered by International Business Machines Corporation, Armonk, N.Y.
The Branch On Condition instruction designates an operand, which specifies an address (also referred to as a location) to be used to replace an instruction address of a program status word (PSW), if any of the branching conditions is true. In one form of the instruction, the operand (i.e., the branch address) is designated in a register. In yet a further example, the operand or branch address is formed from the sum of the contents of a base register, the contents of an index register and a 12-bit unsigned displacement.
Additionally, other branch instructions, such as a Branch Relative On Condition instruction, specify the operand branch location as a signed integer designating the number of half-words added to the address of the instruction to form the new PSW instruction address.
For a number of the conditional branch instructions, a general register is used to form the branch location. This poses a challenge to program design when the contents of such a general register used in a conditional branching instruction are to be loaded from storage. In certain programming situations, a spare general register may not be available for use by the branching instruction.